﻿using System;
using System.Collections.Generic;
using System.Dto;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace System.IBLL
{
    public interface IInteractionManager
    {
        /// <summary>
        /// 获取到留言表的全部数据
        /// </summary>
        /// <returns></returns>
        List<GetAllMessageBoardList> getAllMessageBoardLists();
        Task AddOneMessageByDto(GetAllMessageBoardList dto);

        /// <summary>
        /// 获取活动信息发布表的数据
        /// </summary>
        /// <param name="limit">条数</param>
        /// <param name="page">页数</param>
        /// <param name="datalet">数据总长度</param>
        /// <param name="activityName">活动名筛选</param>
        /// <param name="activityContent">活动内容筛选</param>
        /// <param name="isPublish">是否发布筛选</param>
        /// <returns></returns>
        List<GetActivityReleaseListDto> getActivityReleaseLists(int limit, int page, out int datalet, string activityName, string activityContent, string isPublish);
        /// <summary>
        /// 通过活动ID将活动发布
        /// </summary>
        /// <param name="id">活动ID</param>
        /// <returns></returns>
        Task ReleaseActivityById(int id);
        /// <summary>
        /// 添加一条活动信息
        /// </summary>
        /// <param name="dto">数据模型</param>
        /// <returns></returns>
        Task AddOneActivityRewardByDto(GetActivityReleaseListDto dto);
        /// <summary>
        /// 通过活动ID删除活动信息
        /// </summary>
        /// <param name="id">活动ID</param>
        /// <returns></returns>
        Task DelOneActivityRewardById(int id);
        /// <summary>
        /// 通过活动ID获取到具体的活动信息
        /// </summary>
        /// <param name="id">活动ID</param>
        /// <returns></returns>
        GetActivityReleaseListDto GetOneActivityRewardById(int id);
        /// <summary>
        /// 修改活动信息
        /// </summary>
        /// <param name="dto">数据模型</param>
        /// <returns></returns>
        Task EditOneActivityRewardByDto(GetActivityReleaseListDto dto);
        /// <summary>
        /// 获取在线调查表的信息返回给在线调查管理页面table
        /// </summary>
        /// <param name="limit">条数</param>
        /// <param name="page">页数</param>
        /// <param name="datalet">数据总长度</param>
        /// <param name="surveyTitle">调查标题筛选</param>
        /// <param name="surveyContent">调查内容筛选</param>
        /// <param name="isPublish">是否发布筛选</param>
        /// <returns></returns>
        List<GetOnlineSurveyListDto> getOnlineSurveyListDtos(int limit, int page, out int datalet, string surveyTitle, string surveyContent, string isPublish);
        /// <summary>
        /// 通过调查信息ID发布调查信息
        /// </summary>
        /// <param name="id">调查信息ID</param>
        /// <returns></returns>
        Task ReleaseOnlineSurveyById(int id);
        /// <summary>
        /// 通过调查信息ID删除一条调查信息
        /// </summary>
        /// <param name="id">调查信息ID</param>
        /// <returns></returns>
        Task DelOneOnlineSurveyById(int id);
        /// <summary>
        /// 添加一条在线调查信息
        /// </summary>
        /// <param name="dto">数据模型</param>
        /// <returns></returns>
        Task AddOneOnlineSurveyByDto(GetOnlineSurveyListDto dto);
        /// <summary>
        /// 通过调查信息ID获取到在线调查信息
        /// </summary>
        /// <param name="id">调查信息ID</param>
        /// <returns></returns>
        GetOnlineSurveyListDto GetOneOnlineSurveyById(int id);
        /// <summary>
        /// 通过数据模型修改一条在线调查信息
        /// </summary>
        /// <param name="dto">数据模型</param>
        /// <returns></returns>
        Task EditOneOnlineSurveyByDto(GetOnlineSurveyListDto dto);


        Task AddOneRegistrationActivityByDto(ActivityRegistrationDto dto);

        List<ActivityRegistrationDto> GetActivityRegistrationById(int id, int limit, int page, out int datalet, string userName);
    }
}
